package com.resifind.www.service;

import com.resifind.www.exception.Resp;
import com.resifind.www.po.*;

import java.util.List;

/**
 * @author 36069
 */
public interface AdminService {

    /**
     * 管理员登录
     *
     * @param password 密码
     * @return 登录结果
     */
    Resp<String> login(String password);

    /**
     * 查询充值记录
     *
     * @param status 充值状态
     * @return 充值记录集合
     */
    Resp<List<Recharge>> queryRecharge(String status);

    /**
     * 更新充值状态
     * <p>
     * 批准或拒绝充值请求。
     * 若为批准，更新用户余额。
     * </p>
     *
     * @param rechargeId 充值记录ID
     * @param status     新的充值状态
     * @return 更新结果
     */
    Resp<String> updateRechargeStatus(int rechargeId, String status);

    /**
     * 获取正在申请的商户信息
     *
     * @return 正在申请的商户信息集合
     */
    Resp<List<Merchant>> getPendingMerchants();

    /**
     * 获取所有客户信息，分页显示
     *
     * @param pageNum  当前页码
     * @param pageSize 每页显示的记录数
     * @return 客户集合
     */
    Resp<PageBean<Client>> getClientsByPage(int pageNum, int pageSize);

    /**
     * 统计客户的签到情况
     *
     * @return 客户签到情况
     */
    Resp<SignInStatistics> getSignInStatistics();

    /**
     * 更改客户封禁状态
     *
     * @param clientId 客户ID
     * @param status   新的状态
     * @return 是否更改成功
     */
    Resp<String> updateClientStatus(int clientId, String status);
}
